home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # Generate configs, start, and stop dial-in services (Remote-Access-Server)
-
- . /etc/system.cfg
- . /etc/live.cfg
-
- stp() {
- [ "`fn2`" ] || return
- echo -n "Stopping all RAS serices... "
- for i in 0 1 2 3 4 5 6 7 8 9; do
- [ -f /var/run/ppp-$i.pid ] && kill -2 `cat /var/run/ppp-$i.pid | sed 's/ppp.*//'`
- done
- killall mgetty -15
- killall chat
- =
- }
- fn2() { ps | sed -n '/mgetty sh/P'; }
- fn1() {
- for i in 0 1 2 3 4 5 6 7 8 9; do
- [ "$ROUTER" = dialup -o "$ROUTER" = leased ] && [ $i = 0 ] && continue
- eval a=\$MODEM$i
- eval b=\$MADDR$i
- [ "$a" -a "$b" ] || continue
- eval c=\${MSPEED$i:-38400}
- eval d=\${MINIT$i:-AT\&F}
- if [ $i = 0 ]
- then e=$MTU0; f=$MRU0
- else e=$MTUALL; f=$MRUALL
- fi
- [ "$e" ] && e="mtu $e"
- [ "$f" ] && f="mru $f"
- k=1.1.1.`expr $i + 1`
- g=$DNSADDR; [ "$ENADNS" = n ] || g=$IPADDR0
- [ "$DNSADDR1" ] && m="ms-dns $DNSADDR1"
- h=; [ "$WINSADDR" ] && h="ms-wins $WINSADDR"
- eval ena=\$ENANULL$i
- if [ "$ena" = y ]; then
- eval nullscp=\$NULLSCRIPT$i
- cat >/etc/ppp/options.$a <<-EOF
- connect '/sbin/chat -v -t600 $nullscp'
- persist
- -detach
- crtscts
- modem
- silent
- linkname $i
- proxyarp
- noauth
- $k:$b
- ms-dns $g
- $m
- $h
- EOF
- [ "$1" = newip ] && continue
- [ -f /var/run/ppp-$i.pid ] && kill -2 `cat /var/run/ppp-$i.pid | sed 's/ppp.*//'`
- echo -n "Starting null modem on $a... "
- fork pppd /dev/$a $c
- else
- cat >/etc/ppp/options.$a <<-EOF
- modem
- crtscts
- linkname $i
- proxyarp
- $k:$b
- -pap
- -chap
- noauth
- refuse-chap
- refuse-pap
- ms-dns $g
- $m
- $h
- $e
- $f
- $j
- EOF
- [ "$1" = newip ] && continue
- echo -n "Starting dialin services on $a... "
- fork mgetty $a "$d" "$c"
- fi
- = $?
- done
- }
- str() { [ "`fn2`" ] || fn1; }
-
- case "$1" in
- start) str;;
- stop) stp;;
- restart)stp;str;;
- newip) fn1 $1;;
- status) if [ "`fn2`" ]
- then echo "Mgetty is running:"; fn2
- else echo Mgetty is not running
- fi
- for i in 0 1 2 3 4 5 6 7 8 9; do
- eval ena=\$ENANULL$i
- if [ "$ena" = y ]; then
- eval mod=\$MODEM$i
- if [ -f /var/run/ppp-$i.pid ]
- then echo "Nullmodem running on $mod"
- else echo "Nullmodem is not running on $mod"
- fi
- fi
- done;;
- esac
-
-